主要内容:今天老师主要讲了指针。 分为首地址,存的内容,名字。
只能从首地址访问,&a:找到盒子的首地址。int *p:定义指针,用来存放地址,地址用%d输出。
整型指针只能表示整型变量的地址。没有取地址,指针随机指向。
解引用: int b=2; int *p p=&b; printf("%d",*p); 输出2。*(p-1) 地址减一个整型变量。
指针和指针不能计算,定义好的指针可以加或减一个数,不可以乘除。
数组名可以作为整个数组的首地址使用,二维数组每一行都有一个首地址。
二维数组中:
解引用行是第一个当前行第一个元素,解引用整个数组是第一行首地址。
输出a[0]是第一行首地址,输出*a是第一行首地址,*a[0]是第一行第一个元素,**a是第一行第一个元素。
*(a+1)跳到下一行输出首地址,*(a[0]+1) 输出下一个数, **(a+1) 下一行第一个元素。
s是整个字符串的首地址 char s[10]={"jkl","fgh"}; printf("%s",*s); 输出jkl。 printf("%c",*s); 输j。
传参 fun(p) int fun(int *p) { printf("%d",*p); }
重点难点:两次解引用中间不好理解。
掌握程度,今日内容已全部掌握。