我经历了两个问题,
这两个问题以不同的方式说明了这两件事.
问题1的答案: extern
问题2的答案: extern
我需要知道以下内容.
2.默认情况下,全局变量在范围(或)中是静态的,它等同于通过指定静态存储类来声明变量吗?
3.如果有任何c或c ++差异请澄清?
我审阅了以下链接,
在上面的link1中,在答案中提到了" Pointers are of pointer type".
我只需要知道指针是否是数据类型.
没有人用一个单词回答这个问题.是数据类型还是没有?
这是我提到的第二个链接
指针只是一个保存地址的变量,因此人们可以争辩说指针是一种数据类型,但它没有被定义为数据类型(根据"C编程语言".Kernighan&Ritchie).
为什么强密码需要包含特殊字符?
某些网站要求输入特殊字符作为创建密码的强制要求。
这背后有什么技术原因吗?
我在以下链接中阅读了一篇文章
http://www.embedded.com/electronics-blogs/programming-pointers/4024450/Tag-vs-Type-Names
在这里作者说,使用follwing是错误的.
struct s
{
--
};
s var;
Run Code Online (Sandbox Code Playgroud)
但在我的示例代码中,它的工作完美.
1 #include<iostream>
2 using namespace std;
3
4 struct s
5 {
6 int sd;
7 };
8 s v;
9
10
11
12 int main()
13 {
14
15 v.sd=10;
16 cout<<v.sd;
17 return 0;
18 }
Run Code Online (Sandbox Code Playgroud)
编辑:
有什么实际的区别?为什么它在c ++中工作而在c中不起作用;
我得到了以下链接:getsockopt() 中的 SOL_SOCKET
但这对我来说真的很困惑。一个回答说SOL_SOCKET是socket层的意思。什么是套接字层?该参数还有其他可用选项吗?
如果我们传递SOL_SOCKET参数会发生什么,它SOL代表什么?
我正在使用 UNIX。
在 vimdiff 中给出dp命令时,它会将左侧文件中的整个块(2 行)替换为右侧文件中的粉红色。
在该块中,如果我只想合并第二行。第一行不应合并。
按照我的理解,
free() 用于释放我们之前使用 malloc 分配的内存。
在下面的代码片段中,我释放了分配的内存。但是即使在释放后我也能够访问指针?怎么可能?
免费在内部如何运作?
#include<iostream>
using namespace std;
int main()
{
int *p=(int *)malloc(sizeof(int));
*p=17;
free(p);
*p=*p+1;
printf("\n After freeing memory :: %d ",*p );
return 0;
}
Run Code Online (Sandbox Code Playgroud) 我是c编程语言的新手.我在centos linux系统下的同一目录下有以下文件.
game.c
game.h
main.c中
game.h
#ifndef GAME_
#define GAME_
extern void game (void);
#endif
Run Code Online (Sandbox Code Playgroud)
game.c
#include "game.h"
void game (void)
{
return 23;
}
Run Code Online (Sandbox Code Playgroud)
main.c中
#include "game.h"
int main (void)
{
game();
}
Run Code Online (Sandbox Code Playgroud)
当我使用以下命令编译时..
gcc main.c
Run Code Online (Sandbox Code Playgroud)
我收到如下错误消息..
/tmp/ccwIlBKt.o:在功能
main': main.c:(.text+0x7): undefined reference to游戏'collect2:ld中返回1退出状态
链接我的头文件的正确方法是什么?
我已经明白,当我们使用key作为struct时,我们必须为<operator编写运算符重载函数,因为map在插入map之前使用了必须比较的严格周序.
希望我的理解是正确的,请从这里阅读.
请考虑以下代码段
struct Node
{
int a;
};
// This is not called
bool operator< (const Node &p_node1,const Node &p_node2)
{
printf("\nCALLED OPERATOR OVERLOADING");
return true;
}
int main()
{
using namespace std;
map<Node,int> my_map;
Node n1;
n1.a=55;
my_map[n1]=2; // operator overloading should be called
return 0;
}
Run Code Online (Sandbox Code Playgroud)
问题是运营商重载功能没有被调用?
编辑:
从下面的答案中,在将另外一对添加到容器运算符后,调用重载.但是为什么它被专门召唤三次,这里有什么比较呢?
我已经读过复制构造函数,当"复制一个对象从函数返回它"时调用.
所以我理解每当我们返回一个对象时调用复制构造函数是我的理解正确吗?
如果是,那么每当我们返回一个对象时,都会调用构造函数.所以,如果我们在程序中间复制构造函数将被调用.然后将值分配给类的数据成员.那么现有的价值会被取代吗?
如果不是,这句话的意思是什么?
SRC:教程点
#include <iostream>
using namespace std;
class demo
{
public:
int rate;
demo(int init_rate);
demo( const demo &obj_passed);
demo display();
};
demo::demo(int init_rate)
{
cout << "\nNormal Construtor" << endl;
rate=init_rate;
}
demo::demo(const demo &obj_passed) // Copy Constructor
{
cout << "\nCopy constructor" << endl;
rate=obj_passed.rate;
}
demo demo::display()
{
demo temp(10);
temp.rate=45;
return temp; //copy constructor is not called here
}
int main( )
{
demo obj1=obj1.display();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
和输出是
Normal Constructor
Run Code Online (Sandbox Code Playgroud)