php指针 翁恺c语言视频百度网盘
第二章:
1.当赋值发生在变量定义的时候称为初始化
因为本身就是自己自学时零碎记录的觉得自己容易遗忘的部分,所以可能显得有些杂乱,发出来和大家一起分享,也记录一下自己自学路的开端。 第二章: 1.当赋值发生在变量定义的时候称为初始化。 2.有运算符的式子叫做表达式。 3.会变的是变量,不会变的是常量。 4.const int change=100 ,int前加const,表示这个变量不能被修改。 5.两个整数的运算结果只能是整数,要用浮点数(10.0)。 6.double(双精度浮点数),float(单精度浮点数),表示浮点数。输入时scanf里是%lf,输出时%f。 7.表达式里有算子和运算符。 8.赋值运算自右向左结合。(a=b=6)。 9.“++“,“--”,运算符效果是使变量的值+1或-1,但a++的值是a+1以前的值,++a的值是a+1以后的值,效果都是让a+1. 10.当两个值的关系符合关系运算符的预期时,结果为1,不符合结果为0。 11. 1)算数运算>关系运算>条件运算>赋值运算(条件运算符:表达式1?表达式2:表达式3,如果1为真,表达式2的值为整个条件表达式的值,否则表达式3是表达式的值。) 2)单目运算符优先级高于双目运算符 。 3)!>&&>||。 13. 14. 15.bool类型输出只能显示为1,0,没法输出true,false。 16. 17.a=3+4,5+6 ,a的值为前面那个,因为逗号预算符优先级最低,前面的值算出来优先赋值给a。a=(3+4,5+6),值为后面那个,因为逗号组合关系为自左向右,而括号把逗号运算符的优先级提到最高。。 18. 条件运算符优先级高于赋值运算符但是低于其他运算符。 19.如果没有大括号else自动匹配最近的那个if,缩进格式不能暗示else的匹配。 20. case后的值只能是整数常量。case会跳转到type那个值的位置开始执行程序,直到遇到breakdefault部分除非遇到break,不然都会执行。 21. #include( rand() ) #include( time(0) ). Srand((unsigned)time(null))通过时间来生成不同的随机数种子,以达到生成随机数的目的,同样的随机数种子会生成同样的随机数。 22.break,continue 23.goto out; (用于多重循环中直接跳出循环,会跳到goto后面那个值处。) Out: 24. 1)定义数组时数组类型实际为数组中元素的类型。 2)C99之前数组的大小(元素的数量)只能是常数,之后可以用变量来定义数组的大小。(不建议用变量定义。) 3)一旦创建,数组大小不可以改变。 4)最大的下标为数组个数减1。 25.return会停止函数的运行并返回一个值或不返回。 26.函数声明的参数名称可以不写,但通常都会和函数定义中的一样。 27.c语言在调用参数时永远只能传值给函数。 28.变量生存期:参变量出现到消亡的时间 作用域:可以访问到变量的范围(变量起作用的范围)。 变量的生存期和作用域就是在函数大括号内部。 29.本地变量定义在块中(大括号里),离开块,变量就消失了。块外面定义的变量块里面仍然有效,块里面定义了和外面同名的变量则掩盖了外面的,不能在一个块内定义同名的变量,本地变量不会被默认初始化。 30.sizeof()给出某个类型或变量占据的字节数。常用法:用于计算数组的大小sizeof(a[n])/sizeof(a[0]). 31&可以得到变量的地址,地址的大小是否与int类型相等取决于编译器(32位还是64位),想要输出地址要用%p。 32.数组的地址&a=a=a[0],a[1]比a[0]大4,相邻的数组之间都差4. 33. 1)指针变量的值是别的变量的地址。 2)int*p,q, 此时p是指针变量,q只是int类型的变量。 int*p=&i。 3)作为参数时 例:void f(int*p) f(&i) 4)*p作为一个整数,p是值的地址,改变*p的值,会改掉地址p所指向的变量的值。 34.数组作为函数参数时: 1)在函数定义中数组为a[],中间为空 2)此时函数中数组实际上是指针(数组的地址),因此在函数中不能通过sizeof()的方式得到函数的大小。 3)int sum(int*ar, int n)=int sum(int ar[],int)作为函数参数时是等价的。 3)int a[10]; int*p=a 对于数组取地址,不需要& 4)但是数组的单元(每个元素)表达的是变量,在取地址时仍需&。 5)&a==a==&a[0],数组a的地址等于a[0]的地址 6)[ ]运算符可以对数组做,也可以对指针做 int *p=&min; //min 是普通变量 *p=min; p[0]=min; //将变量当作数组取出该地址上的第一个值 7)*运算符可以对指针做,也可以对数组做。 int a[10]; *a=a[0]; 8)数组变量是const的指针所以不能直接被赋值 int a[] = int * const a; 35.字符类型 1)输入char c; scanf(“%c”,&c);(输入1) Scanf(“%d”,&c);(输入49) 两种情况相等,因为1的ascll码等于49 2)49==‘1’ 3)scanf(“%d %c”,&a,&c), 当同时输入整数类型和字符时,最好加空格,因为整数类型会一直读到不是整数类型为止。 36.逃逸字符 37.字符数组,字符串 (结尾有一个0或“/0”,因此字符串占据空间的大小比它的字面量大1,但是字符串的大小是不包括那个0的。) 1)c语言的字符串是以字符数组的形态存在的 2)不能用运算符对字符串做运算 3)通过数组的方式可以遍历字符串 4)两个相邻的字符串常量会被自动连接起来 5)字符串字面量可以用来初始化字符数组 38.字符串输入输出 1)%s,输入时读到空格、tab或回车为止,不安全php指针,超出界限会崩溃 2)%7s,中间加入数字,数字大小为字符串可读的最大长度,安全 39.char*string Scanf(“%s”,string),错误的,指针变量并没有指向一个实际地址,不能当作字符串来看 40. char string[]=””,字符串长度为1. Char string[100]=””,char[0]的值为“/0” 41.字符串数组 #include 1)strlen() 返回字符串长度,不包括0 2)strcmp(s1,s2),比较函数大小,相等返回0,否则返回它们不相等的字符,前面减后面的大小。 Strncmp()只比较前n个长度 3)strcpy(s1,s2),把s2表示的字符串,拷贝到s1所指向的空间(地址),需要足够的空间 安全版本:strncpy() ,n表示最长能够拷贝的长度 4)srcat(s1,s2),把s2表示的字符串拷贝到s1后面连接成一个字符串,需要s1有足够的空间 安全版本:strncat(),n表示最长能够拷贝的长度 5)strchr(s1,c)从左边开始寻找c在s1中第一次出现的位置 Strrchr(),从右边开始找 没找到返回null,找到了返回字符c的地址 (编辑:晋中站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |