指向字符串常量的指针
2012-10-03 14:33
239 查看
#include <stdio.h>
#include <stdlib.h>
int strcmp(char *source, char *dest) { //实现字符串对比
int i;
//*source='A'; 当source指向字符串常量时不允许,指向栈空间时可以。
for(i=0; source[i]==dest[i]&& source[i]!='\0'; i++)
;
if (source[i]=='\0' && dest[i]=='\0')
return 0;
else
return -1;
}
int main() {
char *source="asd", *dest="asd"; //“asd”为字符串常量,对应于内存中只读数据段,故这里定义可以改成const char *source="asd", *dest="asd"
char a[]="asdf", b[]="asd";
int c,d;
//source[0]='A'; 不允许,赋值操作不合法,source是指向字符串常量的指针,字符串常量存在只读区域,只可读不可写
//a[0]='A'; 这允许,a[]是局部变量,对应于内存中的栈
c=strcmp(source,dest);
d=strcmp(a,b);
printf("c=%d, d=%d\n",c, d);
//printf("%s\n", source);
system("pause");
return 0;
#include <stdlib.h>
int strcmp(char *source, char *dest) { //实现字符串对比
int i;
//*source='A'; 当source指向字符串常量时不允许,指向栈空间时可以。
for(i=0; source[i]==dest[i]&& source[i]!='\0'; i++)
;
if (source[i]=='\0' && dest[i]=='\0')
return 0;
else
return -1;
}
int main() {
char *source="asd", *dest="asd"; //“asd”为字符串常量,对应于内存中只读数据段,故这里定义可以改成const char *source="asd", *dest="asd"
char a[]="asdf", b[]="asd";
int c,d;
//source[0]='A'; 不允许,赋值操作不合法,source是指向字符串常量的指针,字符串常量存在只读区域,只可读不可写
//a[0]='A'; 这允许,a[]是局部变量,对应于内存中的栈
c=strcmp(source,dest);
d=strcmp(a,b);
printf("c=%d, d=%d\n",c, d);
//printf("%s\n", source);
system("pause");
return 0;
相关文章推荐
- 指针到底能不能修改其指向的常量字符串?
- [*注意指向常量的字符指针变量*]用指向常量的字符指针变量和字符数组方法把字符串a复制到字符串b中
- 定义字符指针数组分别指向5个字符串常量,从小到大输出字符串内容
- 指针为何不能修改其指向的常量字符串
- 试验指向常量二维字符串的常量指针
- 指针到底能不能修改其指向的常量字符串?&向NULL地址copy数据
- 指针到底能不能修改其指向的常量字符串?
- 指向常量对象的指针 和 常量指针 区别
- C/C++ 指向字符的指针为什么可以用字符串来初始化,而不是字符地址。
- 2013-7-10学习笔记[字符串操作,指向函数的指针]
- c++指向常量的指针和指向变量的指针常量
- 指向常量的指针--来自《C++ primer》 第四版
- 常量指针与指向常量的指针以及“引用”的相关注意点
- 指针常量 指向常量的指针
- 字符串的数组表示法&指针表示法&常量表示法
- 指针常量与指向常量的指针
- 指向常量的指针与指针常量
- “常量指针”和“指向常量的指针”的区别
- 指针指向的字符串转换成16进制数
- 指向字符串的指针为何不能用来修改此字符串