cout与字符指针

#include <iostream>

using namespace std;

int main( int argc, char **argv )

{

char c=‘x‘;

char *p=&c;

cout<<p<<endl;

cout<<*p<<endl;

cout<<(void *)p<<endl;///P指向内容的地址

cout<<&p<<endl;

}

输出结果:即如果指针p存的是字符的地址,而不是字符数组的地址,那么cout<<p得到的不是p指向的内容(当然如果p指向字符数组那么cout<<p得到字符数组内容),而是P的地址,并且必须要加上(*void)否则出现乱码

时间: 2024-11-08 18:23:33

cout与字符指针的相关文章

C++中cout输出字符型指针地址值的方法

#include<iostream> #include<string> using namespace std; int main(){ char c[3]={'a','b','c'}; char *p=c; cout<<*p<<' '<<(void*)p<<endl; cout<<*(p+1)<<' '<<static_cast<void*>(p+1)<<endl; cou

cout 字符指针和int等指针的解释

问题来源 在牛客网的讨论群里,有人提出了这样的问题代码: char *p = NULL; cout << p; ****** int *q = NULL; cout << q; 上述代码在windows下面使用vs,一个会报错一个不会报错~ 但是在linux下面并不会报错~ 猜想 字符指针是直接打印指针指向的值(字符串),访问了空指针的内容; int指针,输出是打印指针的值(null=0),所以不会报错. 而linux下面不会报错,那肯定是不同编译器的处理不一样了~ 验证 程序在u

关于C中字符数组,字符指针以及C++中string类型的两两转换及排序

// practise.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <string.h> #include <string> #include <algorithm> #include <iostream> using namespace std; int main() { /* 字符串转字符数组,使用strncpy_s(),比strncpy()安全*/ string str

关于字符指针和字符数组初始化的问题

int main() { char a[6]="hello"; char b[6]="hello"; char* c="hello"; char* d="hello"; //*(c+1)='!';出错 if(a==b) cout<<"1"<<endl; if(c==d) cout<<"2"<<endl; return 0; } 该题输出的是

cout输出字符串指针

先给出通过字符型指针输出字符串的示例代码,如下: #include <iostream>using std::cout;using std::endl; int main(){ const char *pszStr = "this is a string"; // 输出字符串cout << "字符串:" << pszStr << endl; // 显然不会输出地址值cout << "字符串起始地址

把vector中的string对象导入到字符指针数组中

#include <iostream>#include <string>#include <vector>//#include <cctype>#include <cstring>//#include "Sales_item.h" using namespace std; //把vector中的string对象导入到字符指针数组中int main(){ vector<string> svec; string str

深入理解《字符指针与字符数组真正的区别》

来自: http://blog.csdn.net/on_1y/article/details/13030439 (这篇介绍的非常到位和透彻!!!) char *p="hello"; char q[]="hello"; char *r = (char*)malloc(sizeof(char)*6); 我们知道,字符指针和字符数组,都可以用来存储和表达字符串. 但,它们的实现方式是不同的! 下面,从代码初始化的角度,来分别说明. (1)  char *p="h

关于指针 用字符数组,字符指针变量输入字符串 动态为字符型指针变量分配内存

#include <stdio.h> #include <iostream> #include<math.h> using namespace std; int main() { //声明字符型数组和指针变量 char str[10]; char *strip=str; //输入输出 cout<<"str="; cin>>str; //用字符数组输入字符串 cout<<"str="<<

字符串比较、字符指针和字符串的存储位置

字符指针==的意义:判断两个指针是否指向同一地址 字符指针存在栈里,字符串存在字符数组里(静态数组在栈里)或者在字符常量区,字符常量区没有重复的字符串 int main() { char *s1 = "abc";//s1在栈上,"abc"在字符常量区,s3也指向这个"abc" char *s3 = "abc"; char s2[] = "abc";//"abc"在栈上 char *s4