您的位置:首页 > 编程语言 > C语言/C++

C语言程序设计:现代方法4

2017-10-20 11:10 253 查看

11.指针

1.const int * pOne; //指向整形常量 的指针,它指向的值不能修改

2.int * const pTwo; //指向整形的常量指针 ,它不能在指向别的变量,但指向(变量)的值可以修改。

指针并不一定总是地址

由于字存储可能大于实际存储变量的长度,那么就需要采用地址+偏移量的表示方法。在intel处理器中,可以采用near的16位偏移量,或far32位偏移量对,偏移量不是真正的地址,cpu需将它与特殊寄存器中段的值联合起来。

12.指针和数组

指针也可以比较大小,当两个指针指向同一数组时。

在标准C中,即使数组a[size]不存在,但对他的取地址仍然合法。



/*  处理一行   */
int a[10][10];
int* p;
for(p = a[0]; p < a[0] + COL; p++)
*p = 0;

/*  处理一列   */
int (*p1)[COL];
for(p1 = a; p < a + COL; p++)
(*p)[i] = 0;


数值型形参和指针型形参是可以互换的,但是对于变量来说却完全不同,比如sizeof。

13.字符串

八进制的字符转义序列最到3个或读到非8进制的数。

/*  字符串写不下了  */
//缺点是不能缩进了。
printf("asdadas. \
adasd\n");
//比较好
printf("asdadas."
"adasd\n");


//骚操作
char digitToHex(int digit)
{
return "0123456789ABCDEF"[digit];
}

#define STR_LEN 80
char a[STR_LEN + 1];

//编译一旦结束,c的长度就结束了,并不是可变的
char c[] = "adasd";
//输出可以用
puts(const char* );
gets();
scanf("%ns", );
//当然fgets会更安全些,scanf要格式化%ns,控制一下长度
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c语言