Question...
Добавлено: 04 июл 2005, 18:22
Скажите пожалуйста, почему так:
main.cpp
#include "str.h"
using namespace nstr;
void main()
{
char s[5] = {'+', '-', '*', '/', '^'};
is_in_set('+', s);
cout << sizeof(s)/sizeof(char); //выводит 5
}
---------------
str.h
#include <iostream>
using namespace std;
namespace nstr
{
void is_in_set(char c, char* s)
{
cout << sizeof(s)/sizeof(char) << "\n"; //выводит 4
};
};
Я так понял, что в main.cpp выводится количество элементов в массиве, как хотелось бы,а в str.h все время 4. С чем это связано?
Спасибо.
main.cpp
#include "str.h"
using namespace nstr;
void main()
{
char s[5] = {'+', '-', '*', '/', '^'};
is_in_set('+', s);
cout << sizeof(s)/sizeof(char); //выводит 5
}
---------------
str.h
#include <iostream>
using namespace std;
namespace nstr
{
void is_in_set(char c, char* s)
{
cout << sizeof(s)/sizeof(char) << "\n"; //выводит 4
};
};
Я так понял, что в main.cpp выводится количество элементов в массиве, как хотелось бы,а в str.h все время 4. С чем это связано?
Спасибо.