仍然是数组和指针的初始化,以及string类型的赋初始值
来源:互联网 发布:火绒安全软件 下载 编辑:程序博客网 时间:2024/05/19 13:43
数组很简单,直接定义然后使用就是了:
建立一个数组a[],如int a[20]=“adf”;如果只建立也就是只声明而不赋值,那要之后赋值就要给出一个循环,一个个的给值,
char d[20];
for (i=0;i<20;i++ )
d[i]=“要给的”;
但是不可以再直接这么了:a[20]=“adf”;
但是如果想一步到位的给a数组赋值那要怎么办呢?用strcpy或者strncpy了,strcpy(s,“asdfasef”);
那么指针呢?
指针始终要记住一点就是,不可以给没有初始化的指针赋值,因为没有初始化的指针的地址是不定的,或许就是用的程序的地址,data和code地址空间冲突很恐怖的。
那就初始化撒。
指针友很多类型,这个跟声明有关,比如整型,char型,还有结构体型的等等,都是一样的定义,这里就拿int和char型的来试试:
int *q;
*q=1345;
printf("%d/n",q);
这样就要不得的
int *q;
q=(int *)malloc(sizeof(int));
*q=1345;
printf("%d/n",*q);
初始化后,这样就可以。
对char型的,一来可以个给数组地址
char *w;
char s[20]="dddddddd";
w=s;
要么分配一个地址再赋值,不过char的赋值不是像int型的一样*q=1345;而是不带星号的赋值:
char *w;
w=(char *)malloc(20);
w="asdddddd";
printf("s=%s",w);
当然了也可以用strcpy来做,但是指针依然要初始化的,这样是不可以的,
char *w;
// w=(char *)malloc(20);
strcpy(w,"asdfasdf");
printf("s=%s",w);
要给地址的才可以,就是w=(char *)malloc(20);要用上。
malloc之后要free,分配地址其实也可以用new这个是c++里面的东西。就不写了。
还有一种就是string类型的赋值了,只要是给地址就可以的,比如:
char a[20]="aaaaaaaaaa";
string ss;
ss=a;
这个是通过数组地址赋值,也可以用指针:
char *a="aaaaaaaaaa";
string ss;
ss=a;
但是还有一种赋值,就是用string类型的地址给指针或者数组赋值,这样是不可以的,起码再vc里面,比如:
char *p;
char a[20];
string ss="asdfasdf";
a=ss;//不可以的
p=ss;//也不可以的
cout<<p<<endl;
cout <<a<<endl;
错误原因:
D:/hehe/hehe/cpp1/cout.cpp(15) : error C2679: binary '=' : no operator defined which takes a right-hand operand of type 'class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >' (or there is no acceptable conversion)
用strcpy(a,ss)或者strcpy(p,ss)也是不可以的。
错误原因:
D:/hehe/hehe/cpp1/cout.cpp(15) : error C2664: 'strcpy' : cannot convert parameter 2 from 'class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >' to 'const char *'
- 仍然是数组和指针的初始化,以及string类型的赋初始值
- 给页面上的Date类型的item赋初始值
- 指针的传递仍然是传递副本
- ExtJS 联动 ComboxBox 赋初始值的解决办法
- SQL中变量赋初始值的重要性
- java-String数组的初始化以及二维数组的访问
- 数组指针和指针数组以及指针的指针
- 创建String类型的数组,动态初始化数组
- 变量的初始化和赋初值
- 指针数组的初始化
- 指针数组的初始化
- 指针数组的初始化
- 字符指针和字符数组的初始化
- 二维数组指针的定义和初始化
- java 类型的初始值
- C++中变量和基本类型,标准库类型以及数组和指针的使用规则
- String与各数据类型之间的转换以及String和char[]赋初值
- Java数组类型的定义和初始化
- datagrid行与行之间加虚线.
- SQL,Excel
- 影响SQL server性能的三个方面
- checkbox 多选传值
- p-unit 教程2 -- 多线程执行测试案例
- 仍然是数组和指针的初始化,以及string类型的赋初始值
- ABAP UI---如何使用Vertical Tabstrip for Controls
- 实例解析SOCKET编程模型(-)
- get和post的区别
- JAVA老鸟BLOG地址以及RSS
- 制作仿“QQ秀”的虚拟形象
- CDMA与GSM的区别
- Anole控件问题讨论
- Hibernate条件查询(Criteria Queries)