char指针
1、在C语言中,没有字符串类型,因此使用char指针表示字符串。
2、那么问题来了,使用char* 表示字符串,到哪里是结尾呢?因此需要一个特殊的字符作为哨兵,类似迭代器中的end(),这个哨兵就是'\0',注意不是字符0.
3、对于文本字符串,编译器会自动添加\0。
4、对于字符数组的赋值,如果不使用文本字符串,需要用户在尾部添加字符\0。对于其他类型的数组,没有\0的概念。
5、对于char指针,C语言提供了一系列方法,如strlen,strcmp。这些方法有个特点,都是假定最后一个字符为\0。因此对于char指针,我们要保证最后一个字符是\0。
6、考虑sizeof,对于指针,取值为4。对于数组名,虽然数组名也可以认为是指针,但是sizeof(数组名) 取值是整个数组占用的内存,而不是4。思考为什么?
int a[] = {1,3,5,7,}; 我怎么知道a中的元素个数。总不能让我数吧?
我知道每个int占用内存,要想知道元素个数,我需要知道整个数组占用的内存。因此,我需要sizeof(a)返回整个数组占用的内存大小。
7、char指针指向文本字符串,可以认为char指针是指向const对象的指针;char数组名,可以认为是常量指针,不允许修改指向。
8、sizeof(char数组名) :返回整个数组占用多少个字节,包括\0。
sizeof(char指针):返回4
9、strlen(char数组名) :字符元素个数,直到\0,不包括\0
strlen(char指针):字符元素个数,直到\0,不包括\0
char指针的更多相关文章
- 初始化char指针--赋值和strcpy() 本质区别【转】
		原文地址:http://hi.baidu.com/todaygoodhj/item/0500b341bf2832e3bdf45180 使用常量字符串初始化char指针,或者使用strcpy复制,从语法 ... 
- char[]数组与char *指针的区别
		char[]数组与char *指针的区别 问题描述 虽然很久之前有看过关于char指针和char数组的区别,但是当时没有系统的整理,到现在频繁遇到,在string,char[], char *中迷失了 ... 
- char数组与char指针
		1.以字符串形式出现的,编译器会在结尾自动添加\0,思考,为什么? 存在的C语言方法,如strlen(s),计算字符串的长度,其中s指针.strlen要计算字符串长度,必须知道哪里是结尾,因此使用\0 ... 
- C:  当字符数组首指针转化成char *指针,sizeof(*ptr)不为array的size
		#include <stdio.h> #include <string.h> int main() { char a[10] = "\0"; char *p ... 
- [转] python关于ctypes使用char指针与bytes相互转换的问题
		最近研究人脸识别,需要用python调用so动态库,涉及到c/c++中的指针字符串转Python的bytes对象的问题. 按照ctypes的文档,直观方式是先创建对应的类型数组,再将指针取地址一一赋值 ... 
- char 指针如何判断字符串需要输出长度
		先上代码: #include <stdio.h> #include <string.h> ] = "; int func1(const char *ip) { pri ... 
- C++中将对象this转换成unsigned char指针
		示例程序 // ---CodeBlob.h--- #ifndef CODEBLOB_H_ #define CODEBLOB_H_ class CodeBlob { private: const cha ... 
- 关于char 指针变量char *=p;这个语句的输出问题
		学习指针的时候我一直有个疑惑,请看下面的代码: #include <iostream> using std::cout; void main() { ; int *nPtr=&nu ... 
- int,char指针探究
		#include<iostream> using namespace std; int main() { /* 思路: 1.关于int指针,不可以直接往指针里传值 例:int *a = 4 ... 
随机推荐
- Using Open Source Static Libraries in Xcode 4
			Using Open Source Static Libraries in Xcode 4 Xcode 4.0.1 allows us to more easily create and use th ... 
- tcprstat源码分析之tcp数据包分析
			tcprstat是percona用来监测mysql响应时间的.不过对于任何运行在TCP协议上的响应时间,都可以用.本文主要做源码分析,如何使用tcprstat请大家查看博文<tcprstat分析 ... 
- [Everyday Mathematics]20150203
			设 $f$ 在 $\bbR$ 上连续可导, 且 $\dps{f'\sex{\frac{1}{2}}=0}$. 试证: $$\bex \exists\ \xi\in \sex{0,\frac{1}{2} ... 
- MyBatis 入门到精通(二) SQL语句映射XML文件
			MyBatis 真正强大之处就在这些映射语句,也就是它的魔力所在.对于它的强大功能,SQL 映射文件的配置却非常简单. 如果您比较SQL 映射文件配置与JDBC 代码,您很快可以发现,使用SQL 映射 ... 
- convert source code files to pdf format in python
			import os import sys def find_file(root_dir, type): dirs_pool = [root_dir] dest_pool = [] def scan_d ... 
- bzoj 2049 [Sdoi2008]Cave 洞穴勘测(LCT)
			[题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=2049 [题意] 给定森林,可能有连边或断边的操作,回答若干个连通性的询问. [思路] ... 
- css 超出部分显示省略号
			代码: overflow: hidden; white-space: nowrap; text-overflow: ellipsis; 重点代码:text-overflow: ellipsis; 解 ... 
- JavaEE5 Tutorial_JavaBean,JSTL
			<jsp:useBean id="beanName" class="fully_qualified_classname" scope="scop ... 
- EmEditor正则表达式例子
			正则表达式中 单词指的是由字母.数字.下划线组合而成的字符串,用符号表示为\w(小写). 空白符包括单字节空格.双字节空格.制表符,用符号表示为\s(小写). 1.匹配被双引号包含的所有字符串(str ... 
- Spring入门(8)-基于Java配置而不是XML
			Spring入门(8)-基于Java配置而不是XML 本文介绍如何应用Java配置而不是通过XML配置Spring. 0. 目录 声明一个简单Bean 声明一个复杂Bean 1. 声明一个简单Bean ... 
